home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / u_man / cat3 / Tk / menu.z / menu
Encoding:
Text File  |  2002-10-03  |  42.2 KB  |  727 lines

  1.  
  2.  
  3.  
  4. mmmmeeeennnnuuuu((((3333TTTTkkkk))))                                                            mmmmeeeennnnuuuu((((3333TTTTkkkk))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      menu - Create and manipulate menu widgets
  10.  
  11. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  12.      mmmmeeeennnnuuuu _p_a_t_h_N_a_m_e ?_o_p_t_i_o_n_s?
  13.  
  14. SSSSTTTTAAAANNNNDDDDAAAARRRRDDDD OOOOPPPPTTTTIIIIOOOONNNNSSSS
  15.      aaaaccccttttiiiivvvveeeeBBBBaaaacccckkkkggggrrrroooouuuunnnndddd               bbbbaaaacccckkkkggggrrrroooouuuunnnndddd      ddddiiiissssaaaabbbblllleeeeddddFFFFoooorrrreeeeggggrrrroooouuuunnnnddddrrrreeeelllliiiieeeeffff  |
  16.      aaaaccccttttiiiivvvveeeeBBBBoooorrrrddddeeeerrrrWWWWiiiiddddtttthhhh              bbbboooorrrrddddeeeerrrrWWWWiiiiddddtttthhhh     ffffoooonnnnttttttttaaaakkkkeeeeFFFFooooccccuuuussss
  17.      aaaaccccttttiiiivvvveeeeFFFFoooorrrreeeeggggrrrroooouuuunnnndddd               ccccuuuurrrrssssoooorrrr          ffffoooorrrreeeeggggrrrroooouuuunnnndddd
  18.  
  19.      See the ``options'' manual entry for details on the standard options.
  20.  
  21. WWWWIIIIDDDDGGGGEEEETTTT----SSSSPPPPEEEECCCCIIIIFFFFIIIICCCC OOOOPPPPTTTTIIIIOOOONNNNSSSS
  22.      Name:           ppppoooossssttttCCCCoooommmmmmmmaaaannnndddd
  23.      Class:          CCCCoooommmmmmmmaaaannnndddd
  24.      Command-Line Switch:----ppppoooossssttttccccoooommmmmmmmaaaannnndddd
  25.  
  26.           If this option is specified then it provides a Tcl command to
  27.           execute each time the menu is posted.  The command is invoked by the
  28.           ppppoooosssstttt widget command before posting the menu.
  29.  
  30.      Name:           sssseeeelllleeeeccccttttCCCCoooolllloooorrrr
  31.      Class:          BBBBaaaacccckkkkggggrrrroooouuuunnnndddd                                               |
  32.      Command-Line Switch:----sssseeeelllleeeeccccttttccccoooolllloooorrrr                                         |
  33.  
  34.           For menu entries that are check buttons or radio buttons, this
  35.           option specifies the color to display in the indicator when the
  36.           check button or radio button is selected.
  37.  
  38.      Name:           tttteeeeaaaarrrrOOOOffffffff                                                  |
  39.      Class:          TTTTeeeeaaaarrrrOOOOffffffff                                                  |
  40.      Command-Line Switch:----tttteeeeaaaarrrrooooffffffff                                             |
  41.  
  42.           This option must have a proper boolean value, which specifies       |
  43.           whether or not the menu should include a tear-off entry at the top. |
  44.           If so, it will exist as entry 0 of the menu and the other entries   |
  45.           will number starting at 1.  The default menu bindings arrange for   |
  46.           the menu to be torn off when the tear-off entry is invoked.
  47.  
  48.  
  49. IIIINNNNTTTTRRRROOOODDDDUUUUCCCCTTTTIIIIOOOONNNN
  50.      The mmmmeeeennnnuuuu command creates a new top-level window (given by the _p_a_t_h_N_a_m_e
  51.      argument) and makes it into a menu widget.  Additional options, described
  52.      above, may be specified on the command line or in the option database to
  53.      configure aspects of the menu such as its colors and font.  The mmmmeeeennnnuuuu
  54.      command returns its _p_a_t_h_N_a_m_e argument.  At the time this command is
  55.      invoked, there must not exist a window named _p_a_t_h_N_a_m_e, but _p_a_t_h_N_a_m_e's
  56.      parent must exist.
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. mmmmeeeennnnuuuu((((3333TTTTkkkk))))                                                            mmmmeeeennnnuuuu((((3333TTTTkkkk))))
  71.  
  72.  
  73.  
  74.      A menu is a widget that displays a collection of one-line entries
  75.      arranged in a column.  There exist several different types of entries,
  76.      each with different properties.  Entries of different types may be
  77.      combined in a single menu.  Menu entries are not the same as entry
  78.      widgets.  In fact, menu entries are not even distinct widgets; the entire
  79.      menu is one widget.
  80.  
  81.      Menu entries are displayed with up to three separate fields.  The main   |
  82.      field is a label in the form of a text string, a bitmap, or an image,    |
  83.      controlled by the ----llllaaaabbbbeeeellll, ----bbbbiiiittttmmmmaaaapppp, and ----iiiimmmmaaaaggggeeee options for the entry.  If
  84.      the  ----aaaacccccccceeeelllleeeerrrraaaattttoooorrrr option is specified for an entry then a second textual
  85.      field is displayed to the right of the label.  The accelerator typically
  86.      describes a keystroke sequence that may be typed in the application to
  87.      cause the same result as invoking the menu entry.  The third field is an
  88.      _i_n_d_i_c_a_t_o_r.  The indicator is present only for checkbutton or radiobutton
  89.      entries.  It indicates whether the entry is selected or not, and is
  90.      displayed to the left of the entry's string.
  91.  
  92.      In normal use, an entry becomes active (displays itself differently)
  93.      whenever the mouse pointer is over the entry.  If a mouse button is
  94.      released over the entry then the entry is _i_n_v_o_k_e_d.  The effect of
  95.      invocation is different for each type of entry; these effects are
  96.      described below in the sections on individual entries.
  97.  
  98.      Entries may be _d_i_s_a_b_l_e_d, which causes their labels and accelerators to be
  99.      displayed with dimmer colors.  The default menu bindings will not allow a|
  100.      disabled entry to be activated or invoked.  Disabled entries may be re-
  101.      enabled, at which point it becomes possible to activate and invoke them
  102.      again.
  103.  
  104.  
  105. CCCCOOOOMMMMMMMMAAAANNNNDDDD EEEENNNNTTTTRRRRIIIIEEEESSSS
  106.      The most common kind of menu entry is a command entry, which behaves much
  107.      like a button widget.  When a command entry is invoked, a Tcl command is
  108.      executed.  The Tcl command is specified with the ----ccccoooommmmmmmmaaaannnndddd option.
  109.  
  110.  
  111. SSSSEEEEPPPPAAAARRRRAAAATTTTOOOORRRR EEEENNNNTTTTRRRRIIIIEEEESSSS
  112.      A separator is an entry that is displayed as a horizontal dividing line.
  113.      A separator may not be activated or invoked, and it has no behavior other
  114.      than its display appearance.
  115.  
  116.  
  117. CCCCHHHHEEEECCCCKKKKBBBBUUUUTTTTTTTTOOOONNNN EEEENNNNTTTTRRRRIIIIEEEESSSS
  118.      A checkbutton menu entry behaves much like a checkbutton widget.  When it
  119.      is invoked it toggles back and forth between the selected and deselected
  120.      states.  When the entry is selected, a particular value is stored in a
  121.      particular global variable (as determined by the ----oooonnnnvvvvaaaalllluuuueeee and ----vvvvaaaarrrriiiiaaaabbbblllleeee
  122.      options for the entry);  when the entry is deselected another value
  123.      (determined by the ----ooooffffffffvvvvaaaalllluuuueeee option) is stored in the global variable.
  124.      An indicator box is displayed to the left of the label in a checkbutton
  125.      entry.  If the entry is selected then the indicator's center is displayed
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. mmmmeeeennnnuuuu((((3333TTTTkkkk))))                                                            mmmmeeeennnnuuuu((((3333TTTTkkkk))))
  137.  
  138.  
  139.  
  140.      in the color given by the ----sssseeeelllleeeeccccttttccccoooolllloooorrrr option for the entry; otherwise
  141.      the indicator's center is displayed in the background color for the menu.
  142.      If a ----ccccoooommmmmmmmaaaannnndddd option is specified for a checkbutton entry, then its value
  143.      is evaluated as a Tcl command each time the entry is invoked;  this
  144.      happens after toggling the entry's selected state.
  145.  
  146.  
  147. RRRRAAAADDDDIIIIOOOOBBBBUUUUTTTTTTTTOOOONNNN EEEENNNNTTTTRRRRIIIIEEEESSSS
  148.      A radiobutton menu entry behaves much like a radiobutton widget.
  149.      Radiobutton entries are organized in groups of which only one entry may
  150.      be selected at a time.  Whenever a particular entry becomes selected it
  151.      stores a particular value into a particular global variable (as
  152.      determined by the ----vvvvaaaalllluuuueeee and ----vvvvaaaarrrriiiiaaaabbbblllleeee options for the entry).  This
  153.      action causes any previously-selected entry in the same group to deselect
  154.      itself.  Once an entry has become selected, any change to the entry's
  155.      associated variable will cause the entry to deselect itself.  Grouping of
  156.      radiobutton entries is determined by their associated variables:  if two
  157.      entries have the same associated variable then they are in the same
  158.      group.  An indicator diamond is displayed to the left of the label in
  159.      each radiobutton entry.  If the entry is selected then the indicator's
  160.      center is displayed in the color given by the ----sssseeeelllleeeeccccttttccccoooolllloooorrrr option for the
  161.      entry; otherwise the indicator's center is displayed in the background
  162.      color for the menu.  If a ----ccccoooommmmmmmmaaaannnndddd option is specified for a radiobutton
  163.      entry, then its value is evaluated as a Tcl command each time the entry
  164.      is invoked;  this happens after selecting the entry.
  165.  
  166.  
  167. CCCCAAAASSSSCCCCAAAADDDDEEEE EEEENNNNTTTTRRRRIIIIEEEESSSS
  168.      A cascade entry is one with an associated menu (determined by the ----mmmmeeeennnnuuuu
  169.      option).  Cascade entries allow the construction of cascading menus.  The|
  170.      ppppoooossssttttccccaaaassssccccaaaaddddeeee widget command can be used to post and unpost the associated |
  171.      menu just to the right of the cascade entry.  The associated menu must be|
  172.      a child of the menu containing the cascade entry (this is needed in order|
  173.      for menu traversal to work correctly).
  174.  
  175.      A cascade entry posts its associated menu by invoking a Tcl command of
  176.      the form
  177.  
  178.                _m_e_n_u ppppoooosssstttt _x _y
  179.  
  180.      where _m_e_n_u is the path name of the associated menu, and _x and _y are the
  181.      root-window coordinates of the upper-right corner of the cascade entry.
  182.      The lower-level menu is unposted by executing a Tcl command with the form
  183.  
  184.                _m_e_n_u uuuunnnnppppoooosssstttt
  185.  
  186.      where _m_e_n_u is the name of the associated menu.
  187.  
  188.      If a ----ccccoooommmmmmmmaaaannnndddd option is specified for a cascade entry then it is
  189.      evaluated as a Tcl command whenever the entry is invoked.                |
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. mmmmeeeennnnuuuu((((3333TTTTkkkk))))                                                            mmmmeeeennnnuuuu((((3333TTTTkkkk))))
  203.  
  204.  
  205.  
  206. TTTTEEEEAAAARRRR----OOOOFFFFFFFF EEEENNNNTTTTRRRRIIIIEEEESSSS
  207.      A tear-off entry appears at the top of the menu if enabled with the      |
  208.      tttteeeeaaaarrrrOOOOffffffff option.  It is not like other menu entries in that it cannot be  |
  209.      created with the aaaadddddddd widget command and cannot be deleted with the ddddeeeelllleeeetttteeee|
  210.      widget command.  When a tear-off entry is created it appears as a dashed |
  211.      line at the top of the menu.  Under the default bindings, invoking the   |
  212.      tear-off entry causes a torn-off copy to be made of the menu and all of  |
  213.      its submenus.
  214.  
  215.  
  216. WWWWIIIIDDDDGGGGEEEETTTT CCCCOOOOMMMMMMMMAAAANNNNDDDD
  217.      The mmmmeeeennnnuuuu command creates a new Tcl command whose name is _p_a_t_h_N_a_m_e.  This
  218.      command may be used to invoke various operations on the widget.  It has
  219.      the following general form:
  220.  
  221.           _p_a_t_h_N_a_m_e _o_p_t_i_o_n ?_a_r_g _a_r_g ...?
  222.  
  223.      _O_p_t_i_o_n and the _a_r_gs determine the exact behavior of the command.
  224.  
  225.      Many of the widget commands for a menu take as one argument an indicator
  226.      of which entry of the menu to operate on.  These indicators are called
  227.      _i_n_d_e_xes and may be specified in any of the following forms:
  228.  
  229.      _n_u_m_b_e_r      Specifies the entry numerically, where 0 corresponds to the
  230.                  top-most entry of the menu, 1 to the entry below it, and so
  231.                  on.
  232.  
  233.      aaaaccccttttiiiivvvveeee      Indicates the entry that is currently active.  If no entry is
  234.                  active then this form is equivalent to nnnnoooonnnneeee.  This form may
  235.                  not be abbreviated.
  236.  
  237.      eeeennnndddd         Indicates the bottommost entry in the menu.  If there are no |
  238.                  entries in the menu then this form is equivalent to nnnnoooonnnneeee.    |
  239.                  This form may not be abbreviated.
  240.  
  241.      llllaaaasssstttt        Same as eeeennnndddd.
  242.  
  243.      nnnnoooonnnneeee        Indicates ``no entry at all'';  this is used most commonly
  244.                  with the aaaaccccttttiiiivvvvaaaatttteeee option to deactivate all the entries in the
  245.                  menu.  In most cases the specification of nnnnoooonnnneeee causes nothing
  246.                  to happen in the widget command.  This form may not be
  247.                  abbreviated.
  248.  
  249.      @@@@_n_u_m_b_e_r     In this form, _n_u_m_b_e_r is treated as a y-coordinate in the     |
  250.                  menu's window;  the entry closest to that y-coordinate is    |
  251.                  used.  For example, ``@@@@0000'' indicates the top-most entry in
  252.                  the window.
  253.  
  254.      _p_a_t_t_e_r_n     If the index doesn't satisfy one of the above forms then this
  255.                  form is used.  _P_a_t_t_e_r_n is pattern-matched against the label
  256.                  of each entry in the menu, in order from the top down, until
  257.                  a matching entry is found.  The rules of TTTTccccllll____SSSSttttrrrriiiinnnnggggMMMMaaaattttcccchhhh are
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. mmmmeeeennnnuuuu((((3333TTTTkkkk))))                                                            mmmmeeeennnnuuuu((((3333TTTTkkkk))))
  269.  
  270.  
  271.  
  272.                  used.
  273.  
  274.      The following widget commands are possible for menu widgets:
  275.  
  276.      _p_a_t_h_N_a_m_e aaaaccccttttiiiivvvvaaaatttteeee _i_n_d_e_x
  277.           Change the state of the entry indicated by _i_n_d_e_x to aaaaccccttttiiiivvvveeee and
  278.           redisplay it using its active colors.  Any previously-active entry
  279.           is deactivated.  If _i_n_d_e_x is specified as nnnnoooonnnneeee, or if the specified
  280.           entry is disabled, then the menu ends up with no active entry.
  281.           Returns an empty string.
  282.  
  283.      _p_a_t_h_N_a_m_e aaaadddddddd _t_y_p_e ?_o_p_t_i_o_n _v_a_l_u_e _o_p_t_i_o_n _v_a_l_u_e ...?
  284.           Add a new entry to the bottom of the menu.  The new entry's type is
  285.           given by _t_y_p_e and must be one of ccccaaaassssccccaaaaddddeeee, cccchhhheeeecccckkkkbbbbuuuuttttttttoooonnnn, ccccoooommmmmmmmaaaannnndddd,
  286.           rrrraaaaddddiiiioooobbbbuuuuttttttttoooonnnn, or sssseeeeppppaaaarrrraaaattttoooorrrr, or a unique abbreviation of one of the
  287.           above.  If additional arguments are present, they specify any of the
  288.           following options:
  289.  
  290.           ----aaaaccccttttiiiivvvveeeebbbbaaaacccckkkkggggrrrroooouuuunnnndddd _v_a_l_u_e
  291.                Specifies a background color to use for displaying this entry
  292.                when it is active.  If this option is specified as an empty
  293.                string (the default), then the aaaaccccttttiiiivvvveeeeBBBBaaaacccckkkkggggrrrroooouuuunnnndddd option for the
  294.                overall menu is used.  If the ttttkkkk____ssssttttrrrriiiiccccttttMMMMoooottttiiiiffff variable has been |
  295.                set to request strict Motif compliance, then this option is    |
  296.                ignored and the ----bbbbaaaacccckkkkggggrrrroooouuuunnnndddd option is used in its place.  This
  297.                option is not available for separator or tear-off entries.
  298.  
  299.           ----aaaaccccttttiiiivvvveeeeffffoooorrrreeeeggggrrrroooouuuunnnndddd _v_a_l_u_e
  300.                Specifies a foreground color to use for displaying this entry
  301.                when it is active.  If this option is specified as an empty
  302.                string (the default), then the aaaaccccttttiiiivvvveeeeFFFFoooorrrreeeeggggrrrroooouuuunnnndddd option for the
  303.                overall menu is used.  This option is not available for
  304.                separator or tear-off entries.
  305.  
  306.           ----aaaacccccccceeeelllleeeerrrraaaattttoooorrrr _v_a_l_u_e
  307.                Specifies a string to display at the right side of the menu
  308.                entry.  Normally describes an accelerator keystroke sequence
  309.                that may be typed to invoke the same function as the menu
  310.                entry.  This option is not available for separator or tear-off
  311.                entries.
  312.  
  313.           ----bbbbaaaacccckkkkggggrrrroooouuuunnnndddd _v_a_l_u_e
  314.                Specifies a background color to use for displaying this entry
  315.                when it is in the normal state (neither active nor disabled).
  316.                If this option is specified as an empty string (the default),
  317.                then the bbbbaaaacccckkkkggggrrrroooouuuunnnndddd option for the overall menu is used.  This
  318.                option is not available for separator or tear-off entries.
  319.  
  320.           ----bbbbiiiittttmmmmaaaapppp _v_a_l_u_e
  321.                Specifies a bitmap to display in the menu instead of a textual
  322.                label, in any of the forms accepted by TTTTkkkk____GGGGeeeettttBBBBiiiittttmmmmaaaapppp.  This
  323.                option overrides the ----llllaaaabbbbeeeellll option but may be reset to an empty
  324.  
  325.  
  326.  
  327.                                                                         PPPPaaaaggggeeee 5555
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334. mmmmeeeennnnuuuu((((3333TTTTkkkk))))                                                            mmmmeeeennnnuuuu((((3333TTTTkkkk))))
  335.  
  336.  
  337.  
  338.                string to enable a textual label to be displayed.  If a ----iiiimmmmaaaaggggeeee
  339.                option has been specified, it overrides ----bbbbiiiittttmmmmaaaapppp.  This option
  340.                is not available for separator or tear-off entries.
  341.  
  342.           ----ccccoooommmmmmmmaaaannnndddd _v_a_l_u_e
  343.                For command, checkbutton, and radiobutton entries, specifies a
  344.                Tcl command to execute when the menu entry is invoked.  For
  345.                cascade entries, specifies a Tcl command to execute when the
  346.                entry is activated (i.e. just before its submenu is posted).
  347.                Not available for separator or tear-off entries.
  348.  
  349.           ----ffffoooonnnntttt _v_a_l_u_e
  350.                Specifies the font to use when drawing the label or accelerator
  351.                string in this entry.  If this option is specified as an empty
  352.                string (the default) then the ffffoooonnnntttt option for the overall menu
  353.                is used.  This option is not available for separator or tear-
  354.                off entries.
  355.  
  356.           ----ffffoooorrrreeeeggggrrrroooouuuunnnndddd _v_a_l_u_e
  357.                Specifies a foreground color to use for displaying this entry
  358.                when it is in the normal state (neither active nor disabled).
  359.                If this option is specified as an empty string (the default),
  360.                then the ffffoooorrrreeeeggggrrrroooouuuunnnndddd option for the overall menu is used.  This
  361.                option is not available for separator or tear-off entries.
  362.  
  363.           ----iiiimmmmaaaaggggeeee _v_a_l_u_e
  364.                Specifies an image to display in the menu instead of a text    |
  365.                string or bitmap The image must have been created by some      |
  366.                previous invocation of iiiimmmmaaaaggggeeee ccccrrrreeeeaaaatttteeee.  This option overrides the|
  367.                ----llllaaaabbbbeeeellll and ----bbbbiiiittttmmmmaaaapppp options but may be reset to an empty string |
  368.                to enable a textual or bitmap label to be displayed.  This     |
  369.                option is not available for separator or tear-off entries.
  370.  
  371.           ----iiiinnnnddddiiiiccccaaaattttoooorrrroooonnnn _v_a_l_u_e
  372.                Available only for checkbutton and radiobutton entries.  _V_a_l_u_e |
  373.                is a boolean that determines whether or not the indicator      |
  374.                should be displayed.
  375.  
  376.           ----llllaaaabbbbeeeellll _v_a_l_u_e
  377.                Specifies a string to display as an identifying label in the
  378.                menu entry.  Not available for separator or tear-off entries.
  379.  
  380.           ----mmmmeeeennnnuuuu _v_a_l_u_e
  381.                Available only for cascade entries.  Specifies the path name of
  382.                the submenu associated with this entry.  The submenu must be a |
  383.                child of the menu.
  384.  
  385.           ----ooooffffffffvvvvaaaalllluuuueeee _v_a_l_u_e
  386.                Available only for checkbutton entries.  Specifies the value to
  387.                store in the entry's associated variable when the entry is
  388.                deselected.
  389.  
  390.  
  391.  
  392.  
  393.                                                                         PPPPaaaaggggeeee 6666
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400. mmmmeeeennnnuuuu((((3333TTTTkkkk))))                                                            mmmmeeeennnnuuuu((((3333TTTTkkkk))))
  401.  
  402.  
  403.  
  404.           ----oooonnnnvvvvaaaalllluuuueeee _v_a_l_u_e
  405.                Available only for checkbutton entries.  Specifies the value to
  406.                store in the entry's associated variable when the entry is
  407.                selected.
  408.  
  409.           ----sssseeeelllleeeeccccttttccccoooolllloooorrrr _v_a_l_u_e
  410.                Available only for checkbutton and radiobutton entries.        |
  411.                Specifies the color to display in the indicator when the entry |
  412.                is selected.  If the value is an empty string (the default)    |
  413.                then the sssseeeelllleeeeccccttttCCCCoooolllloooorrrr option for the menu determines the        |
  414.                indicator color.
  415.  
  416.           ----sssseeeelllleeeeccccttttiiiimmmmaaaaggggeeee _v_a_l_u_e
  417.                Available only for checkbutton and radiobutton entries.        |
  418.                Specifies an image to display in the entry (in place of the    |
  419.                ----iiiimmmmaaaaggggeeee option) when it is selected.  _V_a_l_u_e is the name of an   |
  420.                image, which must have been created by some previous invocation|
  421.                of iiiimmmmaaaaggggeeee ccccrrrreeeeaaaatttteeee.  This option is ignored unless the ----iiiimmmmaaaaggggeeee     |
  422.                option has been specified.
  423.  
  424.           ----ssssttttaaaatttteeee _v_a_l_u_e
  425.                Specifies one of three states for the entry:  nnnnoooorrrrmmmmaaaallll, aaaaccccttttiiiivvvveeee,
  426.                or ddddiiiissssaaaabbbblllleeeedddd.  In normal state the entry is displayed using the
  427.                ffffoooorrrreeeeggggrrrroooouuuunnnndddd option for the menu and the bbbbaaaacccckkkkggggrrrroooouuuunnnndddd option from
  428.                the entry or the menu.  The active state is typically used when
  429.                the pointer is over the entry.  In active state the entry is
  430.                displayed using the aaaaccccttttiiiivvvveeeeFFFFoooorrrreeeeggggrrrroooouuuunnnndddd option for the menu along
  431.                with the aaaaccccttttiiiivvvveeeebbbbaaaacccckkkkggggrrrroooouuuunnnndddd option from the entry.  Disabled
  432.                state means that the entry should be insensitive:  the default |
  433.                bindings will refuse to activate or invoke the entry.  In this
  434.                state the entry is displayed according to the
  435.                ddddiiiissssaaaabbbblllleeeeddddFFFFoooorrrreeeeggggrrrroooouuuunnnndddd option for the menu and the bbbbaaaacccckkkkggggrrrroooouuuunnnndddd
  436.                option from the entry.  This option is not available for
  437.                separator entries.
  438.  
  439.           ----uuuunnnnddddeeeerrrrlllliiiinnnneeee _v_a_l_u_e
  440.                Specifies the integer index of a character to underline in the
  441.                entry.  This option is also queried by the default bindings and
  442.                used to implement keyboard traversal.  0 corresponds to the
  443.                first character of the text displayed in the entry, 1 to the
  444.                next character, and so on.  If a bitmap or image is displayed
  445.                in the entry then this option is ignored.  This option is not
  446.                available for separator or tear-off entries.
  447.  
  448.           ----vvvvaaaalllluuuueeee _v_a_l_u_e
  449.                Available only for radiobutton entries.  Specifies the value to
  450.                store in the entry's associated variable when the entry is
  451.                selected.
  452.  
  453.           ----vvvvaaaarrrriiiiaaaabbbblllleeee _v_a_l_u_e
  454.                Available only for checkbutton and radiobutton entries.
  455.                Specifies the name of a global value to set when the entry is
  456.  
  457.  
  458.  
  459.                                                                         PPPPaaaaggggeeee 7777
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466. mmmmeeeennnnuuuu((((3333TTTTkkkk))))                                                            mmmmeeeennnnuuuu((((3333TTTTkkkk))))
  467.  
  468.  
  469.  
  470.                selected.  For checkbutton entries the variable is also set
  471.                when the entry is deselected.  For radiobutton entries,
  472.                changing the variable causes the currently-selected entry to
  473.                deselect itself.
  474.  
  475.           The aaaadddddddd widget command returns an empty string.
  476.  
  477.      _p_a_t_h_N_a_m_e ccccggggeeeetttt _o_p_t_i_o_n
  478.           Returns the current value of the configuration option given by      |
  479.           _o_p_t_i_o_n.  _O_p_t_i_o_n may have any of the values accepted by the mmmmeeeennnnuuuu     |
  480.           command.
  481.  
  482.      _p_a_t_h_N_a_m_e ccccoooonnnnffffiiiigggguuuurrrreeee ?_o_p_t_i_o_n? ?_v_a_l_u_e _o_p_t_i_o_n _v_a_l_u_e ...?
  483.           Query or modify the configuration options of the widget.  If no
  484.           _o_p_t_i_o_n is specified, returns a list describing all of the available
  485.           options for _p_a_t_h_N_a_m_e (see TTTTkkkk____CCCCoooonnnnffffiiiigggguuuurrrreeeeIIIInnnnffffoooo for information on the
  486.           format of this list).  If _o_p_t_i_o_n is specified with no _v_a_l_u_e, then
  487.           the command returns a list describing the one named option (this
  488.           list will be identical to the corresponding sublist of the value
  489.           returned if no _o_p_t_i_o_n is specified).  If one or more _o_p_t_i_o_n-_v_a_l_u_e
  490.           pairs are specified, then the command modifies the given widget
  491.           option(s) to have the given value(s);  in this case the command
  492.           returns an empty string.  _O_p_t_i_o_n may have any of the values accepted
  493.           by the mmmmeeeennnnuuuu command.
  494.  
  495.      _p_a_t_h_N_a_m_e ddddeeeelllleeeetttteeee _i_n_d_e_x_1 ?_i_n_d_e_x_2?
  496.           Delete all of the menu entries between _i_n_d_e_x_1 and _i_n_d_e_x_2 inclusive.
  497.           If _i_n_d_e_x_2 is omitted then it defaults to _i_n_d_e_x_1.  Attempts to delete|
  498.           a tear-off menu entry are ignored (instead, you should change the   |
  499.           tttteeeeaaaarrrrOOOOffffffff option to remove the tear-off entry).
  500.  
  501.      _p_a_t_h_N_a_m_e eeeennnnttttrrrryyyyccccggggeeeetttt _i_n_d_e_x _o_p_t_i_o_n
  502.           Returns the current value of a configuration option for the entry   |
  503.           given by _i_n_d_e_x.  _O_p_t_i_o_n may have any of the values accepted by the  |
  504.           aaaadddddddd widget command.
  505.  
  506.      _p_a_t_h_N_a_m_e eeeennnnttttrrrryyyyccccoooonnnnffffiiiigggguuuurrrreeee _i_n_d_e_x ?_o_p_t_i_o_n_s?
  507.           This command is similar to the ccccoooonnnnffffiiiigggguuuurrrreeee command, except that it
  508.           applies to the options for an individual entry, whereas ccccoooonnnnffffiiiigggguuuurrrreeee
  509.           applies to the options for the menu as a whole.  _O_p_t_i_o_n_s may have
  510.           any of the values accepted by the aaaadddddddd widget command.  If _o_p_t_i_o_n_s
  511.           are specified, options are modified as indicated in the command and
  512.           the command returns an empty string.  If no _o_p_t_i_o_n_s are specified,
  513.           returns a list describing the current options for entry _i_n_d_e_x (see
  514.           TTTTkkkk____CCCCoooonnnnffffiiiigggguuuurrrreeeeIIIInnnnffffoooo for information on the format of this list).
  515.  
  516.      _p_a_t_h_N_a_m_e iiiinnnnddddeeeexxxx _i_n_d_e_x
  517.           Returns the numerical index corresponding to _i_n_d_e_x, or nnnnoooonnnneeee if _i_n_d_e_x
  518.           was specified as nnnnoooonnnneeee.
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.                                                                         PPPPaaaaggggeeee 8888
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532. mmmmeeeennnnuuuu((((3333TTTTkkkk))))                                                            mmmmeeeennnnuuuu((((3333TTTTkkkk))))
  533.  
  534.  
  535.  
  536.      _p_a_t_h_N_a_m_e iiiinnnnsssseeeerrrrtttt _i_n_d_e_x _t_y_p_e ?_o_p_t_i_o_n _v_a_l_u_e _o_p_t_i_o_n _v_a_l_u_e ...?
  537.           Same as the aaaadddddddd widget command except that it inserts the new entry |
  538.           just before the entry given by _i_n_d_e_x, instead of appending to the   |
  539.           end of the menu.  The _t_y_p_e, _o_p_t_i_o_n, and _v_a_l_u_e arguments have the    |
  540.           same interpretation as for the aaaadddddddd widget command.  It is not       |
  541.           possible to insert new menu entries before the tear-off entry, if   |
  542.           the menu has one.
  543.  
  544.      _p_a_t_h_N_a_m_e iiiinnnnvvvvooookkkkeeee _i_n_d_e_x
  545.           Invoke the action of the menu entry.  See the sections on the
  546.           individual entries above for details on what happens.  If the menu
  547.           entry is disabled then nothing happens.  If the entry has a command
  548.           associated with it then the result of that command is returned as
  549.           the result of the iiiinnnnvvvvooookkkkeeee widget command.  Otherwise the result is an
  550.           empty string.  Note:  invoking a menu entry does not automatically
  551.           unpost the menu;  the default bindings normally take care of this
  552.           before invoking the iiiinnnnvvvvooookkkkeeee widget command.
  553.  
  554.      _p_a_t_h_N_a_m_e ppppoooosssstttt _x _y
  555.           Arrange for the menu to be displayed on the screen at the root-
  556.           window coordinates given by _x and _y.  These coordinates are adjusted
  557.           if necessary to guarantee that the entire menu is visible on the
  558.           screen.  This command normally returns an empty string.  If the
  559.           ppppoooossssttttCCCCoooommmmmmmmaaaannnndddd option has been specified, then its value is executed as
  560.           a Tcl script before posting the menu and the result of that script
  561.           is returned as the result of the ppppoooosssstttt widget command.  If an error
  562.           returns while executing the command, then the error is returned
  563.           without posting the menu.
  564.  
  565.      _p_a_t_h_N_a_m_e ppppoooossssttttccccaaaassssccccaaaaddddeeee _i_n_d_e_x
  566.           Posts the submenu associated with the cascade entry given by _i_n_d_e_x, |
  567.           and unposts any previously posted submenu.  If _i_n_d_e_x doesn't        |
  568.           correspond to a cascade entry, or if _p_a_t_h_N_a_m_e isn't posted, the     |
  569.           command has no effect except to unpost any currently posted submenu.
  570.  
  571.      _p_a_t_h_N_a_m_e ttttyyyyppppeeee _i_n_d_e_x
  572.           Returns the type of the menu entry given by _i_n_d_e_x.  This is the _t_y_p_e|
  573.           argument passed to the aaaadddddddd widget command when the entry was        |
  574.           created, such as ccccoooommmmmmmmaaaannnndddd or sssseeeeppppaaaarrrraaaattttoooorrrr, or tttteeeeaaaarrrrooooffffffff for a tear-off    |
  575.           entry.
  576.  
  577.      _p_a_t_h_N_a_m_e uuuunnnnppppoooosssstttt
  578.           Unmap the window so that it is no longer displayed.  If a lower-
  579.           level cascaded menu is posted, unpost that menu.  Returns an empty
  580.           string.
  581.  
  582.      _p_a_t_h_N_a_m_e yyyyppppoooossssiiiittttiiiioooonnnn _i_n_d_e_x
  583.           Returns a decimal string giving the y-coordinate within the menu
  584.           window of the topmost pixel in the entry specified by _i_n_d_e_x.
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.                                                                         PPPPaaaaggggeeee 9999
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598. mmmmeeeennnnuuuu((((3333TTTTkkkk))))                                                            mmmmeeeennnnuuuu((((3333TTTTkkkk))))
  599.  
  600.  
  601.  
  602. MMMMEEEENNNNUUUU CCCCOOOONNNNFFFFIIIIGGGGUUUURRRRAAAATTTTIIIIOOOONNNNSSSS
  603.      The default bindings support four different ways of using menus:         |
  604.  
  605.      PPPPuuuullllllllddddoooowwwwnnnn MMMMeeeennnnuuuussss
  606.           This is the most common case.  You create one menubutton widget for |
  607.           each top-level menu, and typically you arrange a series of          |
  608.           menubuttons in a row in a menubar window.  You also create the top- |
  609.           level menus and any cascaded submenus, and tie them together with   |
  610.           ----mmmmeeeennnnuuuu options in menubuttons and cascade menu entries.  The top-    |
  611.           level menu must be a child of the menubutton, and each submenu must |
  612.           be a child of the menu that refers to it.  Once you have done this, |
  613.           the default bindings will allow users to traverse and invoke the    |
  614.           tree of menus via its menubutton;  see the mmmmeeeennnnuuuubbbbuuuuttttttttoooonnnn manual entry  |
  615.           for details.
  616.  
  617.      PPPPooooppppuuuupppp MMMMeeeennnnuuuussss
  618.           Popup menus typically post in response to a mouse button press or   |
  619.           keystroke.  You create the popup menus and any cascaded submenus,   |
  620.           then you call the ttttkkkk____ppppooooppppuuuupppp procedure at the appropriate time to post|
  621.           the top-level menu.
  622.  
  623.      OOOOppppttttiiiioooonnnn MMMMeeeennnnuuuussss
  624.           An option menu consists of a menubutton with an associated menu that|
  625.           allows you to select one of several values.  The current value is   |
  626.           displayed in the menubutton and is also stored in a global variable.|
  627.           Use the ttttkkkk____ooooppppttttiiiioooonnnnMMMMeeeennnnuuuu procedure to create option menubuttons and    |
  628.           their menus.
  629.  
  630.      TTTToooorrrrnnnn----ooooffffffff MMMMeeeennnnuuuussss
  631.           You create a torn-off menu by invoking the tear-off entry at the top|
  632.           of an existing menu.  The default bindings will create a new menu   |
  633.           that is a copy of the original menu and leave it permanently posted |
  634.           as a top-level window.  The torn-off menu behaves just the same as  |
  635.           the original menu.
  636.  
  637.  
  638. DDDDEEEEFFFFAAAAUUUULLLLTTTT BBBBIIIINNNNDDDDIIIINNNNGGGGSSSS
  639.      Tk automatically creates class bindings for menus that give them the     |
  640.      following default behavior:
  641.  
  642.      [1]  When the mouse enters a menu, the entry underneath the mouse cursor
  643.           activates;  as the mouse moves around the menu, the active entry
  644.           changes to track the mouse.
  645.  
  646.      [2]  When the mouse leaves a menu all of the entries in the menu
  647.           deactivate, except in the special case where the mouse moves from a
  648.           menu to a cascaded submenu.
  649.  
  650.      [3]  When a button is released over a menu, the active entry (if any) is
  651.           invoked.  The menu also unposts unless it is a torn-off menu.
  652.  
  653.  
  654.  
  655.  
  656.  
  657.                                                                        PPPPaaaaggggeeee 11110000
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664. mmmmeeeennnnuuuu((((3333TTTTkkkk))))                                                            mmmmeeeennnnuuuu((((3333TTTTkkkk))))
  665.  
  666.  
  667.  
  668.      [4]  The Space and Return keys invoke the active entry and unpost the
  669.           menu.
  670.  
  671.      [5]  If any of the entries in a menu have letters underlined with with
  672.           ----uuuunnnnddddeeeerrrrlllliiiinnnneeee option, then pressing one of the underlined letters (or
  673.           its upper-case or lower-case equivalent) invokes that entry and
  674.           unposts the menu.
  675.  
  676.      [6]  The Escape key aborts a menu selection in progress without invoking
  677.           any entry.  It also unposts the menu unless it is a torn-off menu.
  678.  
  679.      [7]  The Up and Down keys activate the next higher or lower entry in the
  680.           menu.  When one end of the menu is reached, the active entry wraps
  681.           around to the other end.
  682.  
  683.      [8]  The Left key moves to the next menu to the left.  If the current
  684.           menu is a cascaded submenu, then the submenu is unposted and the
  685.           current menu entry becomes the cascade entry in the parent.  If the
  686.           current menu is a top-level menu posted from a menubutton, then the
  687.           current menubutton is unposted and the next menubutton to the left
  688.           is posted.  Otherwise the key has no effect.  The left-right order
  689.           of menubuttons is determined by their stacking order:  Tk assumes
  690.           that the lowest menubutton (which by default is the first one
  691.           created) is on the left.
  692.  
  693.      [9]  The Right key moves to the next menu to the right.  If the current
  694.           entry is a cascade entry, then the submenu is posted and the
  695.           current menu entry becomes the first entry in the submenu.
  696.           Otherwise, if the current menu was posted from a menubutton, then
  697.           the current menubutton is unposted and the next menubutton to the
  698.           right is posted.
  699.  
  700.      Disabled menu entries are non-responsive:  they don't activate and they
  701.      ignore mouse button presses and releases.
  702.  
  703.      The behavior of menus can be changed by defining new bindings for
  704.      individual widgets or by redefining the class bindings.
  705.  
  706.  
  707. BBBBUUUUGGGGSSSS
  708.      At present it isn't possible to use the option database to specify values
  709.      for the options to individual entries.
  710.  
  711.  
  712. KKKKEEEEYYYYWWWWOOOORRRRDDDDSSSS
  713.      menu, widget
  714.  
  715.  
  716.  
  717.  
  718.  
  719.  
  720.  
  721.  
  722.  
  723.                                                                        PPPPaaaaggggeeee 11111111
  724.  
  725.  
  726.  
  727.